package com.desksoft.ecommerce.service.interf.mall;

import java.util.List;

import com.desksoft.ecommerce.util.result.ServiceResult;
import com.desksoft.ecommerce.vo.mall.FavoriteVO;
import com.desksoft.ecommerce.vo.mall.ProductsInfo;
import com.desksoft.ecommerce.vo.mall.StoreItemVO;
import com.desksoft.utility.pagination.Page;
import com.desksoft.utility.service.ServiceInterface;

/**
 * 用于操作关注商品及预采购目录
 * 
 * @param
 * @param
 * @return
 */
public interface IFavoriteService extends ServiceInterface {

	/**
	 * 检查商品是否添加关注
	 * 
	 * @param favoriteVO
	 * @return
	 */
	public ServiceResult<Boolean> checkFavoriteInfo(FavoriteVO favoriteVO);

	/**
	 * 
	 * @param
	 * @param
	 * @return
	 */

	public ServiceResult<String> addFavorite(FavoriteVO favoriteVO);

	/**
	 * 商品是否已经添加关注信息
	 * 
	 * @param
	 * @param
	 * @return
	 */

	public ServiceResult<Boolean> isFavoriteInfo2C(FavoriteVO favoriteVO);

	/**
	 * 查询收藏商品列表
	 * 
	 * @param favoriteVO
	 * @return
	 */
	public Page<ProductsInfo> findFavoriteProducts(FavoriteVO favoriteVO);

	/**
	 * 供应商是否已经添加收藏信息
	 * 
	 * @param
	 * @param
	 * @return
	 */

	public ServiceResult<Boolean> isSuppliers(FavoriteVO favoriteVO);

	/**
	 * 收藏供应商信息
	 * 
	 * @param
	 * @param
	 * @return
	 */

	public ServiceResult<Boolean> addSuppliers(FavoriteVO favoriteVO);

	/**
	 * 购买了该商品的用户
	 * 
	 * @param
	 * @param
	 * @return
	 */

	public ServiceResult<List<FavoriteVO>> getCardNo(FavoriteVO favoriteVO);

	/**
	 * 购买了该商品的用户还购买了什么商品
	 * 
	 * @param
	 * @param
	 * @return
	 */

	public ServiceResult<List<FavoriteVO>> getCardNoCode(FavoriteVO favoriteVO);
	
	/**
	 * 该用户已购的商品
	 * 
	 * @param
	 * @param
	 * @return
	 */
	public ServiceResult<List<FavoriteVO>> selectFavoriteItemCode(FavoriteVO favoriteVO);
	
	/**
	 * 预采购目录
	 *  
	 */
	public ServiceResult<List<FavoriteVO>> selectFavoriteCategory(FavoriteVO favoriteVO);
	
	/**
	 * 添加预采购
	 *  
	 */ 
	
	public ServiceResult<Boolean> insertFavoriteCategory(List<Object[]> object);
	
	/**
	 * 删除预采购
	 */ 
	
	public ServiceResult<Boolean> deleteavoriteCategory(FavoriteVO favoriteVO);
	
	/**
	 * 我的商品信息 该方法返回的对象中只包含 
	 * 1 ：关注商品，
	 */
	public ServiceResult<FavoriteVO> selectMyFavoriteList( String clientcode );
	
	/**
	 * 推荐商品信息
	 */
	public ServiceResult<List<StoreItemVO>> selectFavoriteSortList( FavoriteVO favoriteVO );
	
	/**
	 * 用户没有登陆
	 * 推荐商品信息
	 */
	public ServiceResult<List<StoreItemVO>> selectNuLoginFavoriteSortList(String userid ,String storecode ,String clientCode);
	
	
}
